package com.example.jn_dxs.Ui.activity;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.HorizontalScrollView;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.example.jn_dxs.Base.BaseActivity;
import com.example.jn_dxs.Base.BaseViewModel;
import com.example.jn_dxs.Bean.PopuBean;
import com.example.jn_dxs.R;
import com.example.jn_dxs.Ui.adapter.PopuAdapter;
import com.example.jn_dxs.Utlis.PopWindowUtil;
import com.example.jn_dxs.ViewModel.StatisticsVM;
import com.example.jn_dxs.databinding.ActivityWaterLevelStatisticsBinding;
import com.rmondjone.locktableview.LockTableView;
import com.rmondjone.xrecyclerview.ProgressStyle;
import com.rmondjone.xrecyclerview.XRecyclerView;

import java.util.ArrayList;
import java.util.List;

public class WaterLevelStatisticsActivity extends BaseActivity<StatisticsVM, ActivityWaterLevelStatisticsBinding> {

    private ArrayList<String> mfristData = new ArrayList<>(); //首行
    private ArrayList<ArrayList<String>> mTableDatas = new ArrayList<>();
    private LockTableView lockTableView;

    private View MPopuView;
    private RecyclerView PopuRecyc;
    private PopuAdapter adapter;
    private List<PopuBean> list = new ArrayList<>();

    @Override
    protected int getLayoutId() {
        return R.layout.activity_water_level_statistics;
    }

    @Override
    protected void initEventAndView() {
        binding.MyTopBar.tvBack.setOnClickListener(v -> finish());
        binding.MyTopBar.tvTitle.setText("水位统计");
        binding.MyTopBar.tvRight.setVisibility(View.VISIBLE);
//        binding.MyTopBar.tvRight.setText("辛电11老");
//        binding.MyTopBar.tvRight.setOnClickListener(v -> {
//            PopWindowUtil.getInstance(this).popupCrater(binding.IV,MPopuView,binding.MyTopBar.tvRight);
//        });
//
//        MPopuView = LayoutInflater.from(this).inflate(R.layout.pop_xiangshang_view, null, false);
//        PopuRecyc = MPopuView.findViewById(R.id.tv_record);
//        adapter = new PopuAdapter(R.layout.item_popupview);
//        PopuRecyc.setAdapter(adapter);
//        adapter.setListenter((view, popuBean, pos) -> {
//            binding.MyTopBar.tvRight.setText(popuBean.getName());
//            PopWindowUtil.getInstance(this).setDismiss();
//        });
//
//        for (int i=0;i<10;i++){
//            list.add(new PopuBean("辛电1"+i+"老",i+""));
//        }
//        adapter.setNewData(list);

        if (!getIntent().getStringExtra("id").isEmpty()) {
            model.getDetail(getIntent().getStringExtra("id"));
        }

        mfristData.add("钻孔编号");
        mfristData.add("地理位置");
        mfristData.add("经度");
        mfristData.add("纬度");
        mfristData.add("埋深");
        mfristData.add("水位高");
        mfristData.add("时间");
        mTableDatas.add(mfristData);
        lockTableView = new LockTableView(this, binding.contentView, mTableDatas);
        lockTableView.setLockFristColumn(false) //是否锁定第一列
                .setLockFristRow(true) //是否锁定第一行
                .setMaxColumnWidth(1000)//列最大宽度
                .setMinColumnWidth(95) //列最小宽度
                .setCellPadding(8)//设置单元格内边距(dp)
                .setTextViewSize(12) //单元格字体大小
                .setMinRowHeight(40)//行最小高度
                .setMaxRowHeight(50)//行最大高度
                .setColumnWidth(1, 120) //设置列宽
                .setColumnWidth(2, 120) //设置列宽
                .setColumnWidth(3, 120) //设置列宽
                .setFristRowBackGroudColor(R.color.table_head)//表头背景色
                .setTableHeadTextColor(R.color.beijin)//表头字体颜色
                .setTableContentTextColor(R.color.border_color)//单元格字体颜色
                .setNullableString("N/A") //空值替换值
                .setTableViewListener((i, i1) -> {

                })//设置横向滚动回调监听
                .setTableViewRangeListener(new LockTableView.OnTableViewRangeListener() {
                    @Override
                    public void onLeft(HorizontalScrollView horizontalScrollView) {

                    }

                    @Override
                    public void onRight(HorizontalScrollView horizontalScrollView) {

                    }
                })//设置横向滚动边界监听
                .setOnLoadingListener(new LockTableView.OnLoadingListener() {
                    @Override
                    public void onRefresh(XRecyclerView xRecyclerView, ArrayList<ArrayList<String>> arrayList) {
                        xRecyclerView.refreshComplete();
                    }

                    @Override
                    public void onLoadMore(XRecyclerView xRecyclerView, ArrayList<ArrayList<String>> arrayList) {
                        lockTableView.setTableDatas(mTableDatas);
                        xRecyclerView.loadMoreComplete();
                    }
                })// 下拉刷新和加载更多
                .setOnItemClickListenter((view, i) -> {

                })//点击事件
                .setOnItemLongClickListenter((view, i) -> {

                })//长按事件
                .setOnItemSeletor(R.color.dashline_color)
                .show();

        lockTableView.getTableScrollView().setPullRefreshEnabled(true);
        lockTableView.getTableScrollView().setLoadingMoreEnabled(true);
        lockTableView.getTableScrollView().setRefreshProgressStyle(ProgressStyle.SquareSpin);
        //属性值获取
        Log.e("每列最大宽度(dp)", lockTableView.getColumnMaxWidths().toString());
        Log.e("每行最大高度(dp)", lockTableView.getRowMaxHeights().toString());
        Log.e("表格所有的滚动视图", lockTableView.getScrollViews().toString());
        Log.e("表格头部固定视图(锁列)", lockTableView.getLockHeadView().toString());
        Log.e("表格头部固定视图(不锁列)", lockTableView.getUnLockHeadView().toString());

//        data();
    }

    @Override
    public void initClick() {

    }

    private void data() {
        for (int i = 0; i < mfristData.size(); i++) {

            ArrayList<String> mRowDatas = new ArrayList<String>();
            mRowDatas.add("SWY11");//钻孔编号
            mRowDatas.add("济南市历下区浆水泉路115号12");//地理位置
            mRowDatas.add("118.4568");//经度
            mRowDatas.add("37.00015");//纬度
            mRowDatas.add("8m");//地下水位埋深
            mRowDatas.add("4m");//水位高
            mRowDatas.add("2020-03-0" + i + "  15:30:00");//时间


            mTableDatas.add(mRowDatas);

        }
        lockTableView.setTableDatas(mTableDatas);
    }

    @Override
    protected void onObjectDataChange(JSONObject object) {
        super.onObjectDataChange(object);
        JSONObject dtgcjbqkList = object.getJSONObject("dtgcjbqkList");
        JSONArray sweis = object.getJSONArray("sweis"); //位
        JSONArray swens = object.getJSONArray("swens");  //温
        JSONArray szs = object.getJSONArray("szs");

        if (!sweis.isEmpty() && sweis.size() > 0 && dtgcjbqkList != null) {
            binding.MyTopBar.tvRight.setText(dtgcjbqkList.getString("pkiaa"));//编号
            for (int i = 0; i < sweis.size(); i++ ){
                ArrayList<String> mRowDatas = new ArrayList<String>();
                mRowDatas.add(dtgcjbqkList.getString("pkiaa"));  //钻孔编号
                mRowDatas.add(dtgcjbqkList.getString("tkalb"));  //地理位置
                mRowDatas.add(dtgcjbqkList.getString("chahba"));  //经度
                mRowDatas.add(dtgcjbqkList.getString("chahbb"));   //纬度
                mRowDatas.add(dtgcjbqkList.getString("tkcbcl"));   //地下水位埋深
                mRowDatas.add(sweis.getJSONObject(i).getString("shuiwei"));  //水位高
                mRowDatas.add(sweis.getJSONObject(i).getString("endjcsj"));  //时间

                mTableDatas.add(mRowDatas);
            }
            lockTableView.setTableDatas(mTableDatas);
        }
    }
}
